<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@page import="data.UsuarioDAO"%>
<%@page import="viajaGratis.Vivienda"%>
<%@page import="data.ViviendaDAO"%>
<%@page import="data.OfertaDAO"%>
<%@page import="data.SolicitudDAO"%>
<%@page import="viajaGratis.Usuario"%>
<%@page import="viajaGratis.Oferta"%>
<%@page import="viajaGratis.Solicitud"%>
<%@page import="viajaGratis.Votacion"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
 UsuarioDAO usDao=new UsuarioDAO();
 ViviendaDAO viDao=new ViviendaDAO();
 OfertaDAO ofDao=new OfertaDAO();
 SolicitudDAO soDao=new SolicitudDAO();
 
 Usuario us=usDao.selectById(1);
 out.println("<br />Usuario actual:");
 out.println("<br />"+us);
 
 out.println("<br /><br />De que casas dispone el usuario?");
 for(Vivienda v:us.getViviendas()){
	 out.println("<br />"+v);
 }
 
 out.println("<br /><br />Que ofertas ha realizado para la casa 1?");
 Vivienda vi=viDao.selectById(1);
 for(Oferta o:vi.getOfertas()){
	 out.println("<br />"+o);
 }
 
 out.println("<br /><br />Que solicitudes ha recibido la oferta 1?");
 Oferta of=ofDao.selectById(1);
 for(Solicitud s:of.getSolicitudes()){
	 out.println("<br />"+s);
 }
 
 out.println("<br /><br />Que votaciones han recibido los solicitantes?");
 for(Solicitud s:of.getSolicitudes()){
	 Usuario ust=usDao.selectById(s.getSolicitante().getIdUsuario());
	 out.println("<br />Las votaciones del solicitante de la solicitud "+s.getIdSolicitud()+" son:");
	 for(Votacion v:ust.getVotacionesRecibidas()){
		 out.println("<br />"+v);
	 }
 }
 
 out.println("<br /><br />Aceptamos la solicitud 1 y denegamos las que no sean posibles");
 Solicitud so=soDao.selectById(1);
 so.setAceptado(true);
 soDao.update(so);
 Integer numPlazasDisponibles=so.getOferta().getPlazas();
 for(Solicitud s:of.getSolicitudes()){
	 if(s.getAceptado()!=null&&s.getAceptado()==true){
		 numPlazasDisponibles-=s.getReservas();
	 }
 }
 out.println("<br />Ofertabamos "+so.getOferta().getPlazas()+" plazas, aceptamos "+so.getReservas()+" plazas, quedan "+numPlazasDisponibles+" plazas");
 for(Solicitud s:of.getSolicitudes()){
	 if(s.getAceptado()==null){
		 if(s.getReservas()>numPlazasDisponibles){
			 s.setAceptado(false);
			 Solicitud s2=soDao.selectById(s.getIdSolicitud());
			 s2.setAceptado(false);
			 soDao.update(s2);
		 }
	 }
 }
 
 out.println("<br /><br />Las solicitudes quedan como sigue");
 for(Solicitud s:of.getSolicitudes()){
	 out.println("<br />"+s);
 }
 
%>
</body>
</html>